A workflow defines a series of tasks within an organization to produce a final outcome. Workflows allow for business process formalization and management. A collaborative workgroup computing application allows different workflows to be defined for different types of jobs. For example, in a publishing setting, a document may be automatically routed from writer to editor to proofreader to production. At each stage in the workflow, one individual or group is responsible for a specific task. Once the task is complete, the workflow application ensures that the individuals responsible for the next task are notified and receive the data needed to execute the next stage of the process.
A workflow schedule authoring tool enables a user to author a workflow by arranging building blocks in a particular order. Building blocks may correspond to events, conditions, or actions. Each building block is associated with source code that defines an action to be taken when the building block is executed. The order of the building blocks determines the workflow schedule process that will be performed when the workflow schedule is executed by a workflow execution engine on a server computer. Some building blocks may be predefined for commonly used actions. Other building blocks may be customized to execute a specific function or to provide a solution to a unique problem. The building blocks simplify workflow schedule authoring because the user does not need to write any code.
Previous workflow schedule authoring tools require all of the building blocks utilized in a workflow schedule to be stored on both the server and the remote computer that is utilized to author the workflow. This requirement, however, may be a barrier to deploying new building blocks on the server computer. Additionally, in remote workflow authoring systems where multiple users are permitted to concurrently edit the same workflow, conflicts can arise as a result of different versions of the same workflow being stored on the server computer. Moreover, in such systems no safeguards are provided for ensuring that the workflow engine cannot execute unauthorized building blocks.
It is with respect to these considerations and others that the disclosure made herein is provided.